from typing import TypedDict, List, Dict, Optional, Annotated
from langgraph.graph import add_messages


class OutLinesState(TypedDict):
    messages: Annotated[list, add_messages]
    provider: str
    user_input: str
    user_need: List[str]
    goal: str
    audience: str
    domain: str
    year: str
    data: List[str]
    analysis_paradigm: str
    outlines: List[Dict[str, str]]
    final_report: str
